`timescale 1ns/1ps
module tb();
	logic [2 :0 ]sel ;
	logic [3 :0 ]data_o ;
	// logic [6 : 0 ] in_arr [2 :0 ] ;

	
	initial begin
		sel <= 0 ;
		// in_arr[0]<= {3'b001 , 4'b0101} ;
		// in_arr[1]<= {3'b010 , 4'b1110} ;
		// in_arr[2]<= {3'b100 , 4'b1001} ;
		#50 ;
		$finish; 
	end
	always #2 sel = $random()%8 ;


mux#(
		.SEL_NUM(3), 
		.SEL_WD (3), //sel signal width 
		.DATA_WD(4),//data_width 
		.DEFAULT(4'b1111) 
	) mux1 (
		.sel 			(sel),
		.data_o 		(data_o) ,
		.sel_and_data_in({ // {{sel_value , sel_hit_data_value} ，{ ....}}
			3'b001 , 4'b0101,//5
			3'b010 , 4'b1110,//e
			3'b100 , 4'b1001 //9
			}) 	
	);
	initial begin
		$dumpfile("wave.vcd");
		$dumpvars(0, tb ) ;
		for(int i = 0 ;i < 3 ;i++)begin
			$dumpvars(0, mux1.data_array[i]);
		end
	end

endmodule : tb